页面 Page 实例的生命周期
从服务器获取到的数据一般放在onLoad生命周期函数中 ![在这里插入图片描述](https://img-blog.csdnimg.cn/20200816142552248.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MzM1MjkwMQ==,size_16,color_FFFFFF,t_70#pic_center)
示例代码
// pages/posts/posts.js
Page({
/**
* 页面的初始数据
*/
data: {
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
console.log('onload');
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady: function () {
console.log('onReady');
},
/**
* 生命周期函数--监听页面显示
*/
onShow: function () {
console.log('onshow');
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide: function () {
console.log('onhide');
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload: function () {
console.log('onupload');
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh: function () {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom: function () {
},
/**
* 用户点击右上角分享
*/
onShareAppMessage: function () {
}
})
只有一个页面时的执行顺序: 具体详解请看:
https://developers.weixin.qq.com/miniprogram/dev/reference/api/Page.html
数据绑定
具体请看: https://developers.weixin.qq.com/miniprogram/dev/reference/wxml/data.html
data
data 是页面第一次渲染使用的初始数据。
页面加载时,data 将会以JSON字符串的形式由逻辑层传至渲染层,因此data中的数据必须是可以转成JSON的类型:字符串,数字,布尔值,对象,数组。
渲染层可以通过 WXML 对数据进行绑定。
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200816150256925.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MzM1MjkwMQ==,size_16,color_FFFFFF,t_70#pic_center)
Page.prototype.setData(Object data, Function callback)
setData 函数用于将数据从逻辑层发送到视图层(异步),同时改变对应的 this.data 的值(同步)。 官方示例代码:
{{text}}
Change normal data
{{num}}
Change normal num
{{array[0].text}}
Change Array data
{{object.text}}
Change Object data
{{newField.text}}
Add new data
// index.js
Page({
data: {
text: 'init data',
num: 0,
array: [{text: 'init data'}],
object: {
text: 'init data'
}
},
changeText: function() {
// this.data.text = 'changed data' // 不要直接修改 this.data
// 应该使用 setData
this.setData({
text: 'changed data'
})
},
changeNum: function() {
// 或者,可以修改 this.data 之后马上用 setData 设置一下修改了的字段
this.data.num = 1
this.setData({
num: this.data.num
})
},
changeItemInArray: function() {
// 对于对象或数组字段,可以直接修改一个其下的子字段,这样做通常比修改整个对象或数组更好
this.setData({
'array[0].text':'changed data'
})
},
changeItemInObject: function(){
this.setData({
'object.text': 'changed data'
});
},
addNewField: function() {
this.setData({
'newField.text': 'new data'
})
}
})
初改新闻列表Demo
修改后效果
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200816152424311.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MzM1MjkwMQ==,size_16,color_FFFFFF,t_70#pic_center)
示例代码
|